package com.example.demo.controller;

import com.example.demo.Constant;
import com.example.demo.po.WiselyMessage;
import com.example.demo.po.WiselyResponse;
import com.example.demo.service.WebSocketService;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.thymeleaf.expression.Lists;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * 功能描述:
 * 版本信息:   Copyright (c)2017
 * 公司信息:   杭州佐通科技有限公司
 * 开发人员:   Created by xiaochuan
 * 版本日志:   1.0
 * 创建日期:   2018/5/14
 * 创建时间：  11:31
 * 修改历史:
 * 时间         开发者      版本号    修改内容
 * ------------------------------------------------------------------
 * 2018/5/14    xiaochuan      1.0         1.0 Version
 */
@Controller
public class WsController {
    @Resource
    WebSocketService webSocketService;
    @GetMapping("/")
    public String index() {
        return "index1";
    }
    @MessageMapping(Constant.FORETOSERVERPATH)//@MessageMapping和@RequestMapping功能类似，用于设置URL映射地址，浏览器向服务器发起请求，需要通过该地址。
    @SendTo(Constant.PRODUCERPATH)//如果服务器接受到了消息，就会对订阅了@SendTo括号中的地址传送消息。
    public WiselyResponse say(WiselyMessage message) throws Exception {
        List<String> users = new ArrayList<>();
        users.add("d892bf12bf7d11e793b69c5c8e6f60fb");//此处写死只是为了方便测试,此值需要对应页面中订阅个人消息的userId
        //users.add("d892bf12bf7d11e793b69c5c8e6f60fc");//此处写死只是为了方便测试,此值需要对应页面中订阅个人消息的userId
        //users.add("d892bf12bf7d11e793b69c5c8e6f60fbcc");//此处写死只是为了方便测试,此值需要对应页面中订阅个人消息的userId
        webSocketService.send2Users(users, new WiselyResponse("admin hello"));
       // webSocketService.sendMsg(new WiselyResponse("admin hello"));
        return new WiselyResponse("Welcome, " + message.getName() + "!");
    }
}
